#ifndef MY_RENDER_RESULT
#define MY_RENDER_RESULT

// 因为string作为错误结果的使用场景太多了，所以在这里就确定好其地位
// #include <string>
// using std::string;
// 定义一个泛型结构体来模拟 Rust 的 Result
template <typename T, typename E>
struct Result {
    // 枚举类型代表结构体的状态
    enum class Status {
        Ok,
        Err
    };

    Status status; // 当前状态
    T value;       // 成功的值
    E error;       // 错误的值

    // 静态方法创建 Ok 状态的 Result
    static Result<T, E> Ok(const T& value) {
        return { Status::Ok, value, E{} };
    }

    // 静态方法创建 Err 状态的 Result
    static Result<T, E> Err(const E& error) {
        return { Status::Err, T{}, error };
    }
};

#endif